﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace EcoSystem
{
    public interface ISystemUserAppService : ICrudAppService<
        SystemUserDto,
        Guid,
        GetSystemUserInput,
        CreateOrUpdateSystemUserDto,
        CreateOrUpdateSystemUserDto>
    {
        /// <summary>
        /// 获取所有
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<List<SystemUserDto>> GetAllListAsync(GetSystemUserInput input);

        /// <summary>
        /// 获取指定角色的用户列表
        /// </summary>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public Task<List<SystemUserDto>> GetUsersForRoleAsync(string roleName);

        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task ChangePasswordAsync(ChangePasswordInputDto input);
        
        /// <summary>
        /// 重置用户密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task ResetPasswordAsync(ResetPasswordInputDto input);
    }
}
